﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using vudu.Logica.Clases;
using vudu.Logica.Excepciones;
using System.Data;
using vudu.EnlaceDatos.SqlServer;
using System.Data.SqlClient;

namespace vudu.PaginasWeb.G5Materia
{
    public partial class ModificarPerfilProfesor : System.Web.UI.Page
    {
        private Profesor _miProfesor;
        private Escuela _miEscuela;
        private SqlServerProfesor _miConsulta;



        protected void Page_Load(object sender, EventArgs e)
        {
            _miProfesor = new Profesor();
            inicioSesion();
            ocultarLabels();

            if (!IsPostBack)
            {

                try
                {                    
                    LabelError.Text = _miProfesor.Nombre + " " + _miProfesor.Apellido;
                    LabelError.Visible = true;
                    cargarSusDatos();
                    llenarSexo();
                    //llenarStatus();
                    llenarContrato();
                }
                catch (Exception)
                {
                    avisoError(3);

                }
            }
        }

        protected void avisoError(int opcion)
        {
            switch (opcion)
            {
                case 1:
                    LabelError.Text = "Error en Conexión con Base de Datos";
                    break;
                case 2:
                    LabelError.Text = "Debe Seleccionar un Profesor";
                    break;
                case 3:
                    LabelError.Text = "No se Recibieron Datos";
                    break;
                case 4:
                    LabelError.Text = "Modificación Realizada Con Éxito";
                    break;
                case 5:
                    LabelError.Text = "Modificación Fallida. Verifique Los Datos e Intente Nuevamente, La Fecha debe tener el formato Mes/Dia/Año";
                    break;

            }

            if (opcion != 4)
            {
                LabelError.ForeColor = System.Drawing.Color.Red;
            }
            else
                LabelError.ForeColor = System.Drawing.Color.Green;
            LabelError.Visible = true;

        }

        protected void cargarSusDatos()
        {
            labelSuNombre.Text = _miProfesor.Nombre;
            labelSuApellido.Text = _miProfesor.Apellido;
            labelSuCedula.Text = _miProfesor.Cedula.ToString();
            labelSuCRN.Text = _miProfesor.Crn.ToString();
            labelSuContrato.Text = _miProfesor.TiempoLaboral;
            labelSuTlf.Text = _miProfesor.Telefono;
            labelSuEmail.Text = _miProfesor.Email;
            labelSuEstatus.Text = _miProfesor.Estatus;
            labelSuFechaNac.Text = _miProfesor.FechaNacimiento.ToString();
            labelSuSexo.Text = _miProfesor.Sexo;
            

            textNombre.Text = _miProfesor.Nombre;
            textApellido.Text = _miProfesor.Apellido;
            textTlf.Text = _miProfesor.Telefono;
            textEmail.Text = _miProfesor.Email;
            textFechaNac.Text = _miProfesor.FechaNacimiento.ToString();

        }

        protected void llenarSexo()
        {
            DropSexo.Items.Add("Seleccion Sexo");
            DropSexo.Items.Add("M");
            DropSexo.Items.Add("F");
        }

        /*protected void llenarStatus()
        {
            DropEstatus.Items.Add("Seleccion Estatus");
            DropEstatus.Items.Add("Activo");
            DropEstatus.Items.Add("Inactivo");

            
        }*/

        protected void llenarContrato()
        {
            DropContrato.Items.Add("Seleccion Tiempo Laboral");
            DropContrato.Items.Add("Completo");
            DropContrato.Items.Add("Parcial");
        }


        protected void inicioSesion()
        {
            try
            {
                //OBJETO SESSION

               string miRol = (string)Session["rol"];
                if (miRol != "Profesor")
                    Response.Redirect("../G3AccesoSistema/InicioSistema.aspx");

                _miProfesor = new Profesor();
                _miProfesor = (Profesor)Session["Usuario"];                
                nombreProfesor.Text = "Profesor(a): " +_miProfesor.Nombre+" "+_miProfesor.Apellido;

            }
            catch (Exception)
            {
                _miProfesor = new Profesor();
                _miProfesor.Cedula = 14990555;
                _miProfesor = new SqlServerProfesor().ConsultarProfesor(_miProfesor.Cedula.ToString(), 2);
                /*_miProfesor.Nombre = "Carlo";
                _miProfesor.Apellido = "Magurno";
                _miProfesor.Crn = 123678;
                _miProfesor.Email = "maguca@mail.com";
                _miProfesor.FechaNacimiento = Convert.ToDateTime("01/01/2012");
                _miProfesor.Sexo = "M";
                _miProfesor.Telefono = "0412-255-55-55";
                _miProfesor.TiempoLaboral = "Parcial";
                _miProfesor.Estatus = "Activo";
                _miProfesor.EspacioMaxCarga = 5000;
                _miProfesor.EspacioUtilizado = 0;
                */
                nombreProfesor.Text = _miProfesor.Nombre + " " + _miProfesor.Apellido;

                Session["aModificar"] = _miProfesor;
            }
            finally
            {
                //Miga Actual
                MigaActual.Text = "Modificar Perfil Profesor";

            }

        }

        protected bool validarCampos()
        {
            bool esCorrecto = true;

            if (textNombre.Text == "")
            {
                errorNombre.Text = "Debe Ingresar Nombre";
                errorNombre.Visible = true;
                esCorrecto = false;
            }
            if (textApellido.Text == "")
            {
                errorApellido.Text = "Debe Ingresar Apellido";
                errorApellido.Visible = true;
                esCorrecto = false;
            }
            if (textFechaNac.Text == "")
            {
                errorFechaNac.Text = "Debe Ingresar Fecha de Nacimiento";
                errorFechaNac.Visible = true;
                esCorrecto = false;
            }
            if (textEmail.Text == "")
            {
                errorEmail.Text = "Debe Ingresar Email";
                errorEmail.Visible = true;
                esCorrecto = false;
            }
            if (textTlf.Text == "")
            {
                errorTlf.Text = "Debe Ingresar Teléfono";
                errorTlf.Visible = true;
                esCorrecto = false;
            }
            if (DropSexo.SelectedValue == "Seleccion Sexo")
            {
                errorSexo.Text = "Debe Seleccionar Sexo";
                errorSexo.Visible = true;
                esCorrecto = false;
            }
            if (DropContrato.SelectedValue == "Seleccion Tiempo Laboral")
            {
                errorContrato.Text = "Debe Seleccionar el Contrato";
                errorContrato.Visible = true;
                esCorrecto = false;
            }
           /* if (DropEstatus.SelectedValue == "Seleccion Estatus")
            {
                errorEstatus.Text = "Debe Seleccionar Estatus";
                errorEstatus.Visible = true;
                esCorrecto = false;
            }*/


            return esCorrecto;
        }

        protected void ocultarLabels()
        {
            errorEstatus.Visible = false;
            errorContrato.Visible = false;
            errorSexo.Visible = false;
            errorTlf.Visible = false;
            errorEmail.Visible = false;
            errorFechaNac.Visible = false;
            errorApellido.Visible = false;
            errorNombre.Visible = false;
        }

        protected void BotonRegresar_Click(object sender, EventArgs e)
        {
            Response.Redirect("../Home/HomeProfesor.aspx");
        }

        protected Profesor actualizarDatos(Profesor miProfesor)
        {
            miProfesor = new Profesor();
            miProfesor = (Profesor)Session["aModificar"];


            miProfesor.Nombre = textNombre.Text;
            miProfesor.Apellido = textApellido.Text;
            miProfesor.Email = textEmail.Text;
            miProfesor.TiempoLaboral = DropContrato.Text;
            miProfesor.Telefono = textTlf.Text;
            miProfesor.Sexo = DropSexo.Text;
            miProfesor.Estatus = labelSuEstatus.Text;

            return miProfesor;
        }

        protected void BotonModificar_Click(object sender, EventArgs e)
        {


            if (validarCampos())
            {
                _miConsulta = new SqlServerProfesor();
                _miProfesor = new Profesor();

                try
                {
                    _miProfesor = actualizarDatos(_miProfesor);

                    if (_miProfesor != null && _miConsulta.ModificarProfesor(_miProfesor, curarCadena(textFechaNac.Text)))
                    {
                        avisoError(4);
                        BotonModificar.Visible = false;
                        labelSuNombre.Text = _miProfesor.Nombre;
                        labelSuApellido.Text = _miProfesor.Apellido;
                        labelSuCedula.Text = _miProfesor.Cedula.ToString();
                        labelSuCRN.Text = _miProfesor.Crn.ToString();
                        labelSuContrato.Text = _miProfesor.TiempoLaboral;
                        labelSuTlf.Text = _miProfesor.Telefono;
                        labelSuEmail.Text = _miProfesor.Email;
                        labelSuEstatus.Text = _miProfesor.Estatus;
                        labelSuFechaNac.Text = _miProfesor.FechaNacimiento.ToString();
                        labelSuSexo.Text = _miProfesor.Sexo;
                    }
                    else
                    {
                        avisoError(5);
                    }
                }
                catch (Exception)
                {
                    avisoError(3);
                }
            }
        }

        protected string curarCadena(string miCadena)
        {
            String[] miPedazo = miCadena.Split(' ');

            miCadena = miPedazo[0];

            return miCadena;
        }
    }
}